# 列表，其实就是数组
test_list = ["a", "b", "c", "d", "e"]
print(test_list)
print(test_list[0])  # 输出第一个元素
print(test_list[-1])  # 输出最后一个元素
# 修改、添加和删除元素
test_list[0] = "A"
print(test_list)  # 输出 ['A', 'b', 'c', 'd', 'e']
test_list.append("f")  # 添加元素 
print(test_list)  # 输出 ['A', 'b', 'c', 'd', 'e', 'f']
test_list.insert(1, "B")  # 在指定位置插入元素
print(test_list)  # 输出 ['A', 'B', 'b', 'c', 'd', 'e', 'f']
test_list.pop()  # 删除最后一个元素
print(test_list)  # 输出 ['A', 'B', 'b', 'c', 'd', 'e']
del test_list[0]  # 删除第一个元素
print(test_list)  # 输出 ['B', 'b', 'c', 'd', 'e']
test_list.remove("b")  # 根据值删除元素
print(test_list)  # 输出 ['B', 'c', 'd', 'e']

# reverse()永久反转
test_list.reverse()  # 永久反转
print(test_list)  # 输出 ['e', 'd', 'c', 'B']
# sort()永久排序 sorted()临时排序
print(sorted(test_list))  # 临时排序，输出 ['B', 'c', 'd', 'e']
print(test_list)
test_list.sort()  # 永久排序
print(test_list)  # 输出 ['B', 'c', 'd', 'e']

# 列表的长度
print(len(test_list))  # 输出 4

# 遍历列表
for item in test_list:
    print(item)

# 创建数值列表
numbers = list(range(1, 11))  # 创建从1到10的列表
print(numbers)  # 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 数值列表计算
print(min(numbers))  # 输出最小值 1
print(max(numbers))  # 输出最大值 10
print(sum(numbers))  # 输出总和 55

# 切片 有起始索引和结束索引 [start:end)，不包含结束索引的元素,都可以省略，start默认为0，end默认为列表长度
print(test_list[1:3])  # 输出 ['c', 'd']，从索引1到2的元素
# 复制列表
copied_list = test_list[:]  # 使用切片复制列表
print(copied_list)  # 输出 ['B', 'c', 'd', 'e']
# 元组 
# 元组是不可变的列表，使用小括号定义
test_tuple = ("a", "b", "c")
print(test_tuple)  # 输出 ('a', 'b', 'c')
# test_tuple.append("d")  # 会报错，因为元组不可变
test_tuple = test_tuple + ("d",)  # 创建一个新的元组
print(test_tuple)  # 输出 ('a', 'b', 'c', 'd')